home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 April: Mac OS SDK / Dev.CD Apr 96 SDK / Dev.CD Apr 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc Development Framework / ODFDev / ODF / Framewrk / FWPart / Include / FWSOMPrt.h < prev    next >
Encoding:
Text File  |  1995-11-08  |  39.6 KB  |  1,050 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWSOMPrt.h
  4. //    Release Version:    $ 1.0d11 $
  5. //
  6. //    Copyright:    © 1995 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #define SOM_Module_sompart_Source
  11.  
  12. //========================================================================================
  13. // Configuration checks
  14. //========================================================================================
  15.  
  16. #ifndef FW_SUPPORTS_EMBEDDING
  17. #error You must define FW_SUPPORTS_EMBEDDING to be 0 or 1
  18. #endif
  19.  
  20. #ifndef FW_SUPPORTS_EXTENSIONS
  21. #error You must define FW_SUPPORTS_EXTENSIONS to be 0 or 1
  22. #endif
  23.  
  24. #ifndef FW_SUPPORTS_SCRIPTING
  25. #error You must define FW_SUPPORTS_SCRIPTING to be 0 or 1
  26. #endif
  27.  
  28. #if !FW_SUPPORTS_EXTENSIONS && FW_SUPPORTS_SCRIPTING
  29. #error Scripting support requires Extensions support!
  30. #endif
  31.  
  32. //========================================================================================
  33. // Includes
  34. //========================================================================================
  35.  
  36. #include "SOMPart.xih"
  37.  
  38. #if FW_SUPPORTS_EMBEDDING
  39. #include "SOMIter.xh"
  40.  
  41. #ifndef FWFRMING_H
  42. #include "FWFrming.h"
  43. #endif
  44.  
  45. #endif
  46.  
  47. #ifndef FWODPART_H
  48. #include "FWODPart.h"
  49. #endif
  50.  
  51. #ifndef FWGRINIT_H
  52. #include "FWGrInit.h"
  53. #endif
  54.  
  55. #ifndef SOM_ODShape_xh
  56. #include <Shape.xh>
  57. #endif
  58.  
  59. //========================================================================================
  60. // FW_CREATE_EXTENSION_MANAGER macro
  61. //========================================================================================
  62.  
  63. #if FW_SUPPORTS_EXTENSIONS
  64.     #ifndef FWEXTMGR_H
  65.     #include "FWExtMgr.h"
  66.     #endif
  67.     #define FW_CREATE_EXTENSION_MANAGER    part->PrivSetExtensionManager(new FW_CExtensionManager(part));
  68.     #define FW_HAS_EXTENSION  \
  69.         FW_CExtensionManager *manager = somSelf->GetFrameworkPart(ev)->GetExtensionManager(); \
  70.         if (manager) result = manager->HasExtension(ev, extensionName);
  71.     #define FW_ACQUIRE_EXTENSION \
  72.         FW_CExtensionManager *manager = somSelf->GetFrameworkPart(ev)->GetExtensionManager(); \
  73.         if (manager) result = manager->AcquireExtension(ev, extensionName);
  74.     #define FW_RELEASE_EXTENSION \
  75.         FW_CExtensionManager *manager = somSelf->GetFrameworkPart(ev)->GetExtensionManager(); \
  76.         if (manager) manager->ReleaseExtension(ev, extension);
  77.     #define FW_DELETE_EXTENSION_MANAGER \
  78.         FW_CExtensionManager *manager = part->GetExtensionManager(); \
  79.         delete manager;
  80. #else
  81.     #define FW_CREATE_EXTENSION_MANAGER
  82.     #define FW_HAS_EXTENSION
  83.     #define FW_ACQUIRE_EXTENSION
  84.     #define FW_RELEASE_EXTENSION
  85.     #define FW_DELETE_EXTENSION_MANAGER
  86. #endif
  87.  
  88. //========================================================================================
  89. // FW_SOMPART macro
  90. //========================================================================================
  91.  
  92. #define FW_SOMPART(ModuleName, PartName, PartClass) \
  93.     FW_LEAF_PART_API(ModuleName, PartName, PartClass) \
  94.     FW_CONTAINER_PART_API(ModuleName, PartName, PartClass)
  95.     
  96. //========================================================================================
  97. // FW_LEAF_API macro
  98. //========================================================================================
  99.  
  100. #define FW_LEAF_PART_API(ModuleName, PartName, PartClass) \
  101. \
  102. /*======================================================================================== \
  103.  PartName \
  104. ========================================================================================*/\
  105.  \
  106. /*---------------------------------------------------------------------------------------- \
  107.     GetFrameworkPart \
  108. ----------------------------------------------------------------------------------------*/ \
  109.  \
  110. SOM_Scope FW_CPart* SOMLINK PartName##GetFrameworkPart(ModuleName##_##PartName *somSelf, Environment *ev) \
  111. { \
  112.       ModuleName##_##PartName##Data *somThis = ModuleName##_##PartName##GetData(somSelf); \
  113.  \
  114.     return somThis->fFrameworkPart; \
  115. } \
  116.  \
  117. /*---------------------------------------------------------------------------------------- \
  118.     NewFrameworkPart \
  119. ----------------------------------------------------------------------------------------*/ \
  120.  \
  121. SOM_Scope FW_CPart*  SOMLINK PartName##NewFrameworkPart(ModuleName##_##PartName *somSelf, Environment *ev, \
  122.         ODPart* partWrapper) \
  123. { \
  124.     InitGraphic(); \
  125.     PartClass* part = new PartClass##(partWrapper);\
  126.     FW_CREATE_EXTENSION_MANAGER \
  127.     return part; \
  128. } \
  129.  \
  130. /*---------------------------------------------------------------------------------------- \
  131.     somInit \
  132. ----------------------------------------------------------------------------------------*/ \
  133.  \
  134. SOM_Scope void  SOMLINK PartName##somInit(ModuleName##_##PartName *somSelf) \
  135. { \
  136.     ModuleName##_##PartName##_parent_ODPart_somInit(somSelf); \
  137. } \
  138.  \
  139. /*---------------------------------------------------------------------------------------- \
  140.     somUninit \
  141. ----------------------------------------------------------------------------------------*/ \
  142.  \
  143. SOM_Scope void  SOMLINK PartName##somUninit(ModuleName##_##PartName *somSelf) \
  144. { \
  145.      Environment* ev = somGetGlobalEnvironment(); \
  146.     if (somSelf->GetFrameworkPart(ev)) \
  147.     { \
  148.         FW_CPart *part = somSelf->GetFrameworkPart(ev); \
  149.         FW_DELETE_EXTENSION_MANAGER \
  150.         delete part; \
  151.     } \
  152.          \
  153.     ModuleName##_##PartName##_parent_ODPart_somUninit(somSelf); \
  154. } \
  155.  \
  156. /*---------------------------------------------------------------------------------------- \
  157.     FulfillPromise \
  158. ----------------------------------------------------------------------------------------*/ \
  159.  \
  160. SOM_Scope void  SOMLINK PartName##FulfillPromise(ModuleName##_##PartName *somSelf, Environment *ev, \
  161.         ODStorageUnitView* promiseSUView) \
  162. { \
  163.     FW_CODPart::FulfillPromise(ev, somSelf->GetFrameworkPart(ev), promiseSUView); \
  164. } \
  165.  \
  166. /*---------------------------------------------------------------------------------------- \
  167.     DragEnter \
  168. ----------------------------------------------------------------------------------------*/ \
  169.  \
  170. SOM_Scope ODDragResult  SOMLINK PartName##DragEnter(ModuleName##_##PartName *somSelf, Environment *ev, \
  171.         ODDragItemIterator* dragInfo, \
  172.         ODFacet* facet, \
  173.         ODPoint* where) \
  174. { \
  175.     return FW_CODPart::DragEnter(ev, dragInfo, facet, *where); \
  176. } \
  177.  \
  178. /*---------------------------------------------------------------------------------------- \
  179.     DragWithin \
  180. ----------------------------------------------------------------------------------------*/ \
  181.  \
  182. SOM_Scope ODDragResult  SOMLINK PartName##DragWithin(ModuleName##_##PartName *somSelf, Environment *ev, \
  183.         ODDragItemIterator* dragInfo, \
  184.         ODFacet* facet, \
  185.         ODPoint* where) \
  186. { \
  187.     return FW_CODPart::DragWithin(ev, dragInfo, facet, *where); \
  188. } \
  189.  \
  190. /*---------------------------------------------------------------------------------------- \
  191.     DragLeave \
  192. ----------------------------------------------------------------------------------------*/ \
  193.  \
  194. SOM_Scope void  SOMLINK PartName##DragLeave(ModuleName##_##PartName *somSelf, Environment *ev, \
  195.         ODFacet* facet, \
  196.         ODPoint* where) \
  197. { \
  198.     FW_CODPart::DragLeave(ev, facet, *where); \
  199. } \
  200.  \
  201. /*---------------------------------------------------------------------------------------- \
  202.     Drop \
  203. ----------------------------------------------------------------------------------------*/ \
  204.  \
  205. SOM_Scope ODDropResult  SOMLINK PartName##Drop(ModuleName##_##PartName *somSelf, Environment *ev, \
  206.         ODDragItemIterator* dropInfo, \
  207.         ODFacet* facet, \
  208.         ODPoint* where) \
  209. { \
  210.     return FW_CODPart::Drop(ev, dropInfo, facet, *where); \
  211. } \
  212.  \
  213. /*---------------------------------------------------------------------------------------- \
  214.     DropCompleted \
  215. ----------------------------------------------------------------------------------------*/ \
  216.  \
  217. SOM_Scope void  SOMLINK PartName##DropCompleted(ModuleName##_##PartName *somSelf, Environment *ev, \
  218.         ODPart* destPart, \
  219.         ODDropResult dropResult) \
  220. { \
  221.     FW_CODPart::DropCompleted(ev, destPart, dropResult); \
  222. } \
  223.  \
  224. /*---------------------------------------------------------------------------------------- \
  225.     ContainingPartPropertiesUpdated \
  226. ----------------------------------------------------------------------------------------*/ \
  227.  \
  228. SOM_Scope void  SOMLINK PartName##ContainingPartPropertiesUpdated(ModuleName##_##PartName *somSelf, Environment *ev, \
  229.         ODFrame* frame, \
  230.         ODStorageUnit* propertyUnit) \
  231. { \
  232.     FW_CODPart::ContainingPartPropertiesUpdated(ev, frame, propertyUnit); \
  233. } \
  234.  \
  235. /*---------------------------------------------------------------------------------------- \
  236.     AcquireContainingPartProperties \
  237. ----------------------------------------------------------------------------------------*/ \
  238.  \
  239. SOM_Scope ODStorageUnit*  SOMLINK PartName##AcquireContainingPartProperties(ModuleName##_##PartName *somSelf, Environment *ev, \
  240.         ODFrame* frame) \
  241. { \
  242.     return FW_CODPart::AcquireContainingPartProperties(ev, frame); \
  243. } \
  244.  \
  245. /*---------------------------------------------------------------------------------------- \
  246.     DisplayFrameAdded \
  247. ----------------------------------------------------------------------------------------*/ \
  248.  \
  249. SOM_Scope void  SOMLINK PartName##DisplayFrameAdded(ModuleName##_##PartName *somSelf, Environment *ev, \
  250.         ODFrame* odFrame) \
  251. { \
  252.     FW_CODPart::DisplayFrameAdded(ev, somSelf->GetFrameworkPart(ev), odFrame); \
  253. } \
  254.  \
  255. /*---------------------------------------------------------------------------------------- \
  256.     AttachSourceFrame \
  257. ----------------------------------------------------------------------------------------*/ \
  258.  \
  259. SOM_Scope void  SOMLINK PartName##AttachSourceFrame(ModuleName##_##PartName *somSelf, Environment *ev, \
  260.         ODFrame* odFrame, \
  261.         ODFrame* odSourceFrame) \
  262. { \
  263.     FW_CODPart::AttachSourceFrame(ev, odFrame, odSourceFrame); \
  264. } \
  265.  \
  266. /*---------------------------------------------------------------------------------------- \
  267.     DisplayFrameRemoved \
  268. ----------------------------------------------------------------------------------------*/ \
  269.  \
  270. SOM_Scope void  SOMLINK PartName##DisplayFrameRemoved(ModuleName##_##PartName *somSelf, Environment *ev, \
  271.         ODFrame* odFrame) \
  272. { \
  273.     FW_CODPart::DisplayFrameRemoved(ev, odFrame); \
  274. } \
  275.  \
  276. /*---------------------------------------------------------------------------------------- \
  277.     DisplayFrameConnected \
  278. ----------------------------------------------------------------------------------------*/ \
  279.  \
  280. SOM_Scope void  SOMLINK PartName##DisplayFrameConnected(ModuleName##_##PartName *somSelf, Environment *ev, \
  281.         ODFrame* odFrame) \
  282. { \
  283.     FW_CODPart::DisplayFrameConnected(ev, odFrame); \
  284. } \
  285.  \
  286. /*---------------------------------------------------------------------------------------- \
  287.     DisplayFrameClosed \
  288. ----------------------------------------------------------------------------------------*/ \
  289.  \
  290. SOM_Scope void  SOMLINK PartName##DisplayFrameClosed(ModuleName##_##PartName *somSelf, Environment *ev, \
  291.         ODFrame* odFrame) \
  292. { \
  293.     FW_CODPart::DisplayFrameClosed(ev, odFrame); \
  294. } \
  295.  \
  296. /*---------------------------------------------------------------------------------------- \
  297.     FrameShapeChanged \
  298. ----------------------------------------------------------------------------------------*/ \
  299.  \
  300. SOM_Scope void  SOMLINK PartName##FrameShapeChanged(ModuleName##_##PartName *somSelf, Environment *ev, \
  301.         ODFrame* frame) \
  302. { \
  303.     FW_CODPart::FrameShapeChanged(ev, frame); \
  304. } \
  305.  \
  306. /*---------------------------------------------------------------------------------------- \
  307.     ViewTypeChanged \
  308. ----------------------------------------------------------------------------------------*/ \
  309.  \
  310. SOM_Scope void  SOMLINK PartName##ViewTypeChanged(ModuleName##_##PartName *somSelf, Environment *ev, \
  311.         ODFrame* frame) \
  312. { \
  313.     FW_CODPart::ViewTypeChanged(ev, frame); \
  314. } \
  315.  \
  316. /*---------------------------------------------------------------------------------------- \
  317.     PresentationChanged \
  318. ----------------------------------------------------------------------------------------*/ \
  319.  \
  320. SOM_Scope void  SOMLINK PartName##PresentationChanged(ModuleName##_##PartName *somSelf, Environment *ev, \
  321.         ODFrame* frame) \
  322. { \
  323.     FW_CODPart::PresentationChanged(ev, frame); \
  324. } \
  325.  \
  326. /*---------------------------------------------------------------------------------------- \
  327.     SequenceChanged \
  328. ----------------------------------------------------------------------------------------*/ \
  329.  \
  330. SOM_Scope void  SOMLINK PartName##SequenceChanged(ModuleName##_##PartName *somSelf, Environment *ev, \
  331.         ODFrame* frame) \
  332. { \
  333.     FW_CODPart::SequenceChanged(ev, frame); \
  334. } \
  335.  \
  336. /*---------------------------------------------------------------------------------------- \
  337.     WritePartInfo \
  338. ----------------------------------------------------------------------------------------*/ \
  339.  \
  340. SOM_Scope void  SOMLINK PartName##WritePartInfo(ModuleName##_##PartName *somSelf, Environment *ev, \
  341.         ODInfoType partInfo, \
  342.         ODStorageUnitView* storageUnitView) \
  343. { \
  344.     FW_CODPart::WritePartInfo(ev, partInfo, storageUnitView); \
  345. } \
  346.  \
  347. /*---------------------------------------------------------------------------------------- \
  348.     ReadPartInfo \
  349. ----------------------------------------------------------------------------------------*/ \
  350.  \
  351. SOM_Scope ODInfoType  SOMLINK PartName##ReadPartInfo(ModuleName##_##PartName *somSelf, Environment *ev, \
  352.         ODFrame* odFrame, \
  353.         ODStorageUnitView* storageUnitView) \
  354. { \
  355.     return FW_CODPart::ReadPartInfo(ev, somSelf->GetFrameworkPart(ev), odFrame, storageUnitView); \
  356. } \
  357.  \
  358. /*---------------------------------------------------------------------------------------- \
  359.     ClonePartInfo \
  360. ----------------------------------------------------------------------------------------*/ \
  361.  \
  362. SOM_Scope void  SOMLINK PartName##ClonePartInfo(ModuleName##_##PartName *somSelf, Environment *ev, \
  363.         ODDraftKey key, \
  364.         ODInfoType partInfo, \
  365.         ODStorageUnitView* storageUnitView, \
  366.         ODFrame* scope) \
  367. { \
  368.     FW_CODPart::ClonePartInfo(ev, \
  369.                                 key, \
  370.                                 partInfo, \
  371.                                 storageUnitView, \
  372.                                 scope); \
  373. } \
  374.  \
  375. /*---------------------------------------------------------------------------------------- \
  376.     Open \
  377. ----------------------------------------------------------------------------------------*/ \
  378.  \
  379. SOM_Scope ODID  SOMLINK PartName##Open(ModuleName##_##PartName *somSelf, Environment *ev, \
  380.         ODFrame* odFrame) \
  381. { \
  382.     return FW_CODPart::Open(ev, somSelf->GetFrameworkPart(ev), odFrame); \
  383. } \
  384.  \
  385. /*---------------------------------------------------------------------------------------- \
  386.     FacetAdded \
  387. ----------------------------------------------------------------------------------------*/ \
  388.  \
  389. SOM_Scope void  SOMLINK PartName##FacetAdded(ModuleName##_##PartName *somSelf, Environment *ev, \
  390.         ODFacet* facet) \
  391. { \
  392.     FW_CODPart::FacetAdded(ev, facet); \
  393. } \
  394.  \
  395. /*---------------------------------------------------------------------------------------- \
  396.     FacetRemoved \
  397. ----------------------------------------------------------------------------------------*/ \
  398.  \
  399. SOM_Scope void  SOMLINK PartName##FacetRemoved(ModuleName##_##PartName *somSelf, Environment *ev, \
  400.         ODFacet* facet) \
  401. { \
  402.     FW_CODPart::FacetRemoved(ev, facet); \
  403. } \
  404.  \
  405. /*---------------------------------------------------------------------------------------- \
  406.     CanvasChanged \
  407. ----------------------------------------------------------------------------------------*/ \
  408.  \
  409. SOM_Scope void  SOMLINK PartName##CanvasChanged(ModuleName##_##PartName *somSelf, Environment *ev, \
  410.         ODFacet* facet) \
  411. { \
  412.     FW_CODPart::CanvasChanged(ev, facet); \
  413. } \
  414.  \
  415. /*---------------------------------------------------------------------------------------- \
  416.     GeometryChanged \
  417. ----------------------------------------------------------------------------------------*/ \
  418.  \
  419. SOM_Scope void  SOMLINK PartName##GeometryChanged(ModuleName##_##PartName *somSelf, Environment *ev, \
  420.         ODFacet* facet, \
  421.         ODBoolean clipShapeChanged, \
  422.         ODBoolean externalTransformChanged) \
  423. { \
  424.     FW_CODPart::GeometryChanged(ev, facet, clipShapeChanged, externalTransformChanged); \
  425. } \
  426.  \
  427. /*---------------------------------------------------------------------------------------- \
  428.     Draw \
  429. ----------------------------------------------------------------------------------------*/ \
  430.  \
  431. SOM_Scope void  SOMLINK PartName##Draw(ModuleName##_##PartName *somSelf, Environment *ev, \
  432.         ODFacet* facet, \
  433.         ODShape* invalidShape) \
  434. { \
  435.     FW_CODPart::Draw(ev, facet, invalidShape); \
  436. } \
  437.  \
  438. /*---------------------------------------------------------------------------------------- \
  439.     CanvasUpdated \
  440. ----------------------------------------------------------------------------------------*/ \
  441.  \
  442. SOM_Scope void  SOMLINK PartName##CanvasUpdated(ModuleName##_##PartName *somSelf, Environment *ev, \
  443.         ODCanvas* canvas) \
  444. { \
  445.     FW_CODPart::CanvasUpdated(ev,canvas); \
  446. } \
  447.  \
  448. /*---------------------------------------------------------------------------------------- \
  449.     HighlightChanged \
  450. ----------------------------------------------------------------------------------------*/ \
  451.  \
  452. SOM_Scope void  SOMLINK PartName##HighlightChanged(ModuleName##_##PartName *somSelf, Environment *ev, \
  453.         ODFacet* facet) \
  454. { \
  455.     FW_CODPart::HighlightChanged(ev,facet); \
  456. } \
  457.  \
  458. /*---------------------------------------------------------------------------------------- \
  459.     GetPrintResolution \
  460. ----------------------------------------------------------------------------------------*/ \
  461.  \
  462. SOM_Scope ODULong  SOMLINK PartName##GetPrintResolution(ModuleName##_##PartName *somSelf, Environment *ev, \
  463.         ODFrame* frame) \
  464. { \
  465.     return FW_CODPart::GetPrintResolution(ev,frame); \
  466. } \
  467.  \
  468. /*---------------------------------------------------------------------------------------- \
  469.     CreateLink \
  470. ----------------------------------------------------------------------------------------*/ \
  471.  \
  472. SOM_Scope ODLinkSource*  SOMLINK PartName##CreateLink(ModuleName##_##PartName *somSelf, Environment *ev, \
  473.         ODByteArray* data) \
  474. { \
  475.     return FW_CODPart::CreateLink(ev, somSelf->GetFrameworkPart(ev), data); \
  476. } \
  477.  \
  478. /*---------------------------------------------------------------------------------------- \
  479.     LinkUpdated \
  480. ----------------------------------------------------------------------------------------*/ \
  481.  \
  482. SOM_Scope void  SOMLINK PartName##LinkUpdated(ModuleName##_##PartName *somSelf, Environment *ev, \
  483.         ODLink* updatedLink, \
  484.         ODUpdateID updateID) \
  485. { \
  486.     FW_CODPart::LinkUpdated(ev, somSelf->GetFrameworkPart(ev), updatedLink, updateID); \
  487. } \
  488.  \
  489. /*---------------------------------------------------------------------------------------- \
  490.     RevealLink
  491. ----------------------------------------------------------------------------------------*/ \
  492.  \
  493. SOM_Scope void  SOMLINK PartName##RevealLink(ModuleName##_##PartName *somSelf, Environment *ev, \
  494.         ODLinkSource* linkSource) \
  495. { \
  496.     FW_CODPart::RevealLink(ev, somSelf->GetFrameworkPart(ev), linkSource); \
  497. } \
  498.  \
  499. /*---------------------------------------------------------------------------------------- \
  500.     EditInLinkAttempted \
  501. ----------------------------------------------------------------------------------------*/ \
  502.  \
  503. SOM_Scope ODBoolean  SOMLINK PartName##EditInLinkAttempted(ModuleName##_##PartName *somSelf, Environment *ev, \
  504.         ODFrame* frame) \
  505. { \
  506.     return FW_CODPart::EditInLinkAttempted(ev, somSelf->GetFrameworkPart(ev), frame); \
  507. } \
  508.  \
  509. /*---------------------------------------------------------------------------------------- \
  510.     LinkStatusChanged \
  511. ----------------------------------------------------------------------------------------*/ \
  512.  \
  513. SOM_Scope void  SOMLINK PartName##LinkStatusChanged(ModuleName##_##PartName *somSelf, Environment *ev, \
  514.         ODFrame* frame) \
  515. { \
  516.     FW_CODPart::LinkStatusChanged(ev, somSelf->GetFrameworkPart(ev), frame); \
  517. } \
  518.  \
  519. /*---------------------------------------------------------------------------------------- \
  520.     BeginRelinquishFocus \
  521. ----------------------------------------------------------------------------------------*/ \
  522.  \
  523. SOM_Scope ODBoolean  SOMLINK PartName##BeginRelinquishFocus(ModuleName##_##PartName *somSelf, Environment *ev, \
  524.         ODTypeToken focus, \
  525.         ODFrame* ownerFrame, \
  526.         ODFrame* proposedFrame) \
  527. { \
  528.     return FW_CODPart::BeginRelinquishFocus(ev, \
  529.                                             somSelf->GetFrameworkPart(ev),  \
  530.                                             focus, \
  531.                                             ownerFrame, \
  532.                                             proposedFrame); \
  533. } \
  534.  \
  535. /*---------------------------------------------------------------------------------------- \
  536.     CommitRelinquishFocus \
  537. ----------------------------------------------------------------------------------------*/ \
  538.  \
  539. SOM_Scope void  SOMLINK PartName##CommitRelinquishFocus(ModuleName##_##PartName *somSelf, Environment *ev, \
  540.         ODTypeToken focus, \
  541.         ODFrame* ownerFrame, \
  542.         ODFrame* proposedFrame) \
  543. { \
  544.     FW_CODPart::CommitRelinquishFocus(ev,  \
  545.                                         focus, \
  546.                                         ownerFrame, \
  547.                                         proposedFrame); \
  548. } \
  549.  \
  550. /*---------------------------------------------------------------------------------------- \
  551.     AbortRelinquishFocus \
  552. ----------------------------------------------------------------------------------------*/ \
  553. \
  554. SOM_Scope void  SOMLINK PartName##AbortRelinquishFocus(ModuleName##_##PartName *somSelf, Environment *ev, \
  555.         ODTypeToken focus, \
  556.         ODFrame* ownerFrame, \
  557.         ODFrame* proposedFrame) \
  558. { \
  559.     FW_CODPart::AbortRelinquishFocus(ev,focus,ownerFrame,proposedFrame); \
  560. } \
  561.  \
  562. /*---------------------------------------------------------------------------------------- \
  563.     FocusAcquired \
  564. ----------------------------------------------------------------------------------------*/ \
  565.  \
  566. SOM_Scope void  SOMLINK PartName##FocusAcquired(ModuleName##_##PartName *somSelf, Environment *ev, \
  567.         ODTypeToken focus, \
  568.         ODFrame* ownerFrame) \
  569. { \
  570.     FW_CODPart::FocusAcquired(ev, focus, ownerFrame); \
  571. } \
  572.  \
  573. /*---------------------------------------------------------------------------------------- \
  574.     FocusLost \
  575. ----------------------------------------------------------------------------------------*/ \
  576.  \
  577. SOM_Scope void  SOMLINK PartName##FocusLost(ModuleName##_##PartName *somSelf, Environment *ev, \
  578.         ODTypeToken focus, \
  579.         ODFrame* ownerFrame) \
  580. { \
  581.     FW_CODPart::FocusLost(ev, focus, ownerFrame); \
  582. } \
  583.  \
  584. /*---------------------------------------------------------------------------------------- \
  585.     CloneInto \
  586. ----------------------------------------------------------------------------------------*/ \
  587.  \
  588. SOM_Scope void  SOMLINK PartName##CloneInto(ModuleName##_##PartName *somSelf, Environment *ev, \
  589.         ODDraftKey key, \
  590.         ODStorageUnit* toSU, \
  591.         ODFrame* scope) \
  592. { \
  593.     ModuleName##_##PartName##_parent_ODPart_CloneInto(somSelf,ev, key, toSU, scope);     \
  594.          \
  595.     FW_CODPart::CloneInto(ev, somSelf->GetFrameworkPart(ev), key, toSU, scope); \
  596. } \
  597.  \
  598. /*---------------------------------------------------------------------------------------- \
  599.     ExternalizeKinds \
  600. ----------------------------------------------------------------------------------------*/ \
  601.  \
  602. SOM_Scope void  SOMLINK PartName##ExternalizeKinds(ModuleName##_##PartName *somSelf, Environment *ev, \
  603.         ODTypeList* kindset) \
  604. { \
  605.     FW_CODPart::ExternalizeKinds(ev, kindset); \
  606. } \
  607.  \
  608. /*---------------------------------------------------------------------------------------- \
  609.     ChangeKind \
  610. ----------------------------------------------------------------------------------------*/ \
  611.  \
  612. SOM_Scope void  SOMLINK PartName##ChangeKind(ModuleName##_##PartName *somSelf, Environment *ev, \
  613.         ODType kind) \
  614. { \
  615.     FW_CODPart::ChangeKind(ev,kind); \
  616. } \
  617.  \
  618. /*---------------------------------------------------------------------------------------- \
  619.     HandleEvent \
  620. ----------------------------------------------------------------------------------------*/ \
  621.  \
  622. SOM_Scope ODBoolean  SOMLINK PartName##HandleEvent(ModuleName##_##PartName *somSelf, Environment *ev, \
  623.         ODEventData* event, \
  624.         ODFrame* frame, \
  625.         ODFacet* facet, \
  626.         ODEventInfo* eventInfo) \
  627. { \
  628.     return FW_CODPart::HandleEvent(ev, somSelf->GetFrameworkPart(ev), event, frame, facet, eventInfo); \
  629. } \
  630.  \
  631. /*---------------------------------------------------------------------------------------- \
  632.     AdjustMenus \
  633. ----------------------------------------------------------------------------------------*/ \
  634.  \
  635. SOM_Scope void  SOMLINK PartName##AdjustMenus(ModuleName##_##PartName *somSelf, Environment *ev, \
  636.         ODFrame* odFrame) \
  637. { \
  638.     FW_CODPart::AdjustMenus(ev, somSelf->GetFrameworkPart(ev), odFrame); \
  639. } \
  640.  \
  641. /*---------------------------------------------------------------------------------------- \
  642.     UndoAction \
  643. ----------------------------------------------------------------------------------------*/ \
  644.  \
  645. SOM_Scope void  SOMLINK PartName##UndoAction(ModuleName##_##PartName *somSelf, Environment *ev, \
  646.         ODActionData* actionState) \
  647. { \
  648.     FW_CODPart::UndoAction(ev, somSelf->GetFrameworkPart(ev), actionState); \
  649. } \
  650.  \
  651. /*---------------------------------------------------------------------------------------- \
  652.     RedoAction \
  653. ----------------------------------------------------------------------------------------*/ \
  654.  \
  655. SOM_Scope void  SOMLINK PartName##RedoAction(ModuleName##_##PartName *somSelf, Environment *ev, \
  656.         ODActionData* actionState) \
  657. { \
  658.     FW_CODPart::RedoAction(ev, actionState); \
  659. } \
  660.  \
  661. /*---------------------------------------------------------------------------------------- \
  662.     DisposeActionState \
  663. ----------------------------------------------------------------------------------------*/ \
  664.  \
  665. SOM_Scope void  SOMLINK PartName##DisposeActionState(ModuleName##_##PartName *somSelf, Environment *ev, \
  666.         ODActionData* actionState, \
  667.         ODDoneState doneState) \
  668. { \
  669.     FW_CODPart::DisposeActionState(ev, actionState, doneState); \
  670. } \
  671.  \
  672. /*---------------------------------------------------------------------------------------- \
  673.     WriteActionState \
  674. ----------------------------------------------------------------------------------------*/ \
  675.  \
  676. SOM_Scope void  SOMLINK PartName##WriteActionState(ModuleName##_##PartName *somSelf, Environment *ev, \
  677.         ODActionData* actionState, \
  678.         ODStorageUnitView* storageUnitView) \
  679. { \
  680.     FW_CODPart::WriteActionState(ev, actionState, storageUnitView); \
  681. } \
  682.  \
  683. /*---------------------------------------------------------------------------------------- \
  684.     ReadActionState \
  685. ----------------------------------------------------------------------------------------*/ \
  686.  \
  687. SOM_Scope ODActionData  SOMLINK PartName##ReadActionState(ModuleName##_##PartName *somSelf, Environment *ev, \
  688.         ODStorageUnitView* storageUnitView) \
  689. { \
  690.     ODActionData actionData; \
  691.     actionData._maximum = 0; \
  692.     actionData._length = 0; \
  693.     actionData._buffer = NULL; \
  694.      \
  695.     FW_CODPart::ReadActionState(ev, storageUnitView, &actionData); \
  696.      \
  697.     return actionData; \
  698. } \
  699.  \
  700. /*---------------------------------------------------------------------------------------- \
  701.     InitPart \
  702. ----------------------------------------------------------------------------------------*/ \
  703.  \
  704. SOM_Scope void  SOMLINK PartName##InitPart(ModuleName##_##PartName *somSelf, Environment *ev, \
  705.         ODStorageUnit* storageUnit, \
  706.         ODPart* partWrapper) \
  707. { \
  708.     ModuleName##_##PartName##Data *somThis = ModuleName##_##PartName##GetData(somSelf); \
  709.  \
  710.     ModuleName##_##PartName##_parent_ODPart_InitPart(somSelf, ev, storageUnit, partWrapper); \
  711.     somThis->fFrameworkPart = somSelf->NewFrameworkPart(ev, partWrapper);         \
  712.      \
  713.     FW_CODPart::InitPart(ev, somThis->fFrameworkPart, storageUnit); \
  714. } \
  715.  \
  716. /*---------------------------------------------------------------------------------------- \
  717.     InitPartFromStorage \
  718. ----------------------------------------------------------------------------------------*/ \
  719.  \
  720. SOM_Scope void  SOMLINK PartName##InitPartFromStorage(ModuleName##_##PartName *somSelf, Environment *ev, \
  721.         ODStorageUnit* storageUnit, \
  722.         ODPart* partWrapper) \
  723. { \
  724.     ModuleName##_##PartName##Data *somThis = ModuleName##_##PartName##GetData(somSelf); \
  725.  \
  726.     ModuleName##_##PartName##_parent_ODPart_InitPartFromStorage(somSelf, ev, storageUnit, partWrapper); \
  727.     somThis->fFrameworkPart = somSelf->NewFrameworkPart(ev, partWrapper);     \
  728.  \
  729.     FW_CODPart::InitPartFromStorage(ev, somThis->fFrameworkPart, storageUnit); \
  730. } \
  731.  \
  732. /*---------------------------------------------------------------------------------------- \
  733.     Externalize \
  734. ----------------------------------------------------------------------------------------*/ \
  735.  \
  736. SOM_Scope void  SOMLINK PartName##Externalize(ModuleName##_##PartName *somSelf, Environment *ev) \
  737. { \
  738.     ModuleName##_##PartName##_parent_ODPart_Externalize(somSelf,ev); \
  739.  \
  740.     FW_CODPart::Externalize(ev, somSelf->GetFrameworkPart(ev)); \
  741. } \
  742.  \
  743. /*---------------------------------------------------------------------------------------- \
  744.     Release \
  745. ----------------------------------------------------------------------------------------*/ \
  746.  \
  747. SOM_Scope void  SOMLINK PartName##Release(ModuleName##_##PartName *somSelf, Environment *ev) \
  748. { \
  749.     ModuleName##_##PartName##_parent_ODPart_Release(somSelf,ev);     \
  750.     FW_CODPart::Release(ev, somSelf->GetFrameworkPart(ev)); \
  751. } \
  752.  \
  753. /*---------------------------------------------------------------------------------------- \
  754.     ReleaseAll \
  755. ----------------------------------------------------------------------------------------*/ \
  756.  \
  757. SOM_Scope void  SOMLINK PartName##ReleaseAll(ModuleName##_##PartName *somSelf, Environment *ev) \
  758. { \
  759.     ModuleName##_##PartName##_parent_ODPart_ReleaseAll(somSelf,ev); \
  760.     FW_CODPart::ReleaseAll(ev, somSelf->GetFrameworkPart(ev)); \
  761. } \
  762.  \
  763. /*---------------------------------------------------------------------------------------- \
  764.     HasExtension \
  765. ----------------------------------------------------------------------------------------*/ \
  766.  \
  767. SOM_Scope ODBoolean  SOMLINK PartName##HasExtension(ModuleName##_##PartName *somSelf, Environment *ev, \
  768.         ODType extensionName) \
  769. { \
  770.     ODBoolean result = false; \
  771.     FW_HAS_EXTENSION \
  772.     return result; \
  773. } \
  774.  \
  775. /*---------------------------------------------------------------------------------------- \
  776.     AcquireExtension \
  777. ----------------------------------------------------------------------------------------*/ \
  778.  \
  779. SOM_Scope ODExtension*  SOMLINK PartName##AcquireExtension(ModuleName##_##PartName *somSelf, Environment *ev, \
  780.         ODType extensionName) \
  781. { \
  782.     ODExtension* result = NULL; \
  783.     FW_ACQUIRE_EXTENSION \
  784.     return result; \
  785. } \
  786.  \
  787. /*---------------------------------------------------------------------------------------- \
  788.     ReleaseExtension \
  789. ----------------------------------------------------------------------------------------*/ \
  790.  \
  791. SOM_Scope void  SOMLINK PartName##ReleaseExtension(ModuleName##_##PartName *somSelf, Environment *ev, \
  792.         ODExtension* extension) \
  793. { \
  794.     FW_RELEASE_EXTENSION \
  795. } \
  796.  \
  797. /*---------------------------------------------------------------------------------------- \
  798.     Purge \
  799. ----------------------------------------------------------------------------------------*/ \
  800.  \
  801. SOM_Scope ODSize  SOMLINK PartName##Purge(ModuleName##_##PartName *somSelf, Environment *ev, \
  802.         ODSize size) \
  803. { \
  804.     return FW_CODPart::Purge(ev, somSelf->GetFrameworkPart(ev), size); \
  805. } \
  806. \
  807.  
  808. //========================================================================================
  809. // FW_CONTAINER_PART_API macro
  810. //========================================================================================
  811.  
  812.  
  813. #if FW_SUPPORTS_EMBEDDING
  814.  
  815. // ======== Non-EmbeddingPart =========
  816.  
  817. #define FW_CONTAINER_PART_API(ModuleName, PartName, PartClass) \
  818. /*---------------------------------------------------------------------------------------- \
  819.     AdjustBorderShape \
  820. ----------------------------------------------------------------------------------------*/ \
  821.  \
  822. SOM_Scope ODShape*  SOMLINK PartName##AdjustBorderShape(ModuleName##_##PartName *somSelf, Environment * ev, \
  823.         ODFacet* embeddedFacet, \
  824.         ODShape* shape) \
  825. { \
  826.     return FW_CODPart::AdjustBorderShape(ev, embeddedFacet, shape); \
  827. } \
  828.  \
  829. /*---------------------------------------------------------------------------------------- \
  830.     EmbeddedFrameUpdated \
  831. ----------------------------------------------------------------------------------------*/ \
  832.  \
  833. SOM_Scope void  SOMLINK PartName##EmbeddedFrameUpdated(ModuleName##_##PartName *somSelf, Environment *ev, \
  834.         ODFrame* frame, \
  835.         ODUpdateID updateID) \
  836. { \
  837.     FW_CODPart::EmbeddedFrameUpdated(ev, somSelf->GetFrameworkPart(ev), frame, updateID); \
  838. } \
  839.  \
  840. /*---------------------------------------------------------------------------------------- \
  841.     UsedShapeChanged \
  842. ----------------------------------------------------------------------------------------*/ \
  843.  \
  844. SOM_Scope void  SOMLINK PartName##UsedShapeChanged(ModuleName##_##PartName *somSelf, Environment *ev, \
  845.         ODFrame* embeddedFrame) \
  846. { \
  847.     FW_CODPart::UsedShapeChanged(ev, embeddedFrame); \
  848. } \
  849.  \
  850. /*---------------------------------------------------------------------------------------- \
  851.     RevealFrame \
  852. ----------------------------------------------------------------------------------------*/ \
  853.  \
  854. SOM_Scope ODBoolean  SOMLINK PartName##RevealFrame(ModuleName##_##PartName *somSelf, Environment *ev, \
  855.         ODFrame* embeddedFrame, \
  856.         ODShape* revealShape) \
  857. { \
  858.     return FW_CODPart::RevealFrame(ev, embeddedFrame, revealShape); \
  859. } \
  860.  \
  861. /*---------------------------------------------------------------------------------------- \
  862.     EmbeddedFrameSpec \
  863. ----------------------------------------------------------------------------------------*/ \
  864.  \
  865. SOM_Scope void  SOMLINK PartName##EmbeddedFrameSpec(ModuleName##_##PartName *somSelf, Environment *ev, \
  866.         ODFrame* embeddedFrame, \
  867.         ODObjectSpec* spec) \
  868. { \
  869.     FW_CODPart::EmbeddedFrameSpec(ev, embeddedFrame, spec); \
  870. } \
  871.  \
  872. /*---------------------------------------------------------------------------------------- \
  873.     CreateEmbeddedFramesIterator \
  874. ----------------------------------------------------------------------------------------*/ \
  875.  \
  876. SOM_Scope ODEmbeddedFramesIterator*  SOMLINK PartName##CreateEmbeddedFramesIterator(ModuleName##_##PartName *somSelf, Environment *ev, \
  877.         ODFrame* frame) \
  878. { \
  879.     FW_CEmbeddingFrame* fwFrame = NULL;\
  880. \
  881.     if (frame != NULL)\
  882.     {\
  883.         fwFrame = FW_CEmbeddingFrame::ODtoFWEmbeddingFrame(ev, frame);\
  884.         FW_ASSERT(fwFrame);\
  885.     }\
  886. \
  887.     ModuleName##_##PartName##EmbeddedFramesIterator* iter = new ModuleName##_##PartName##EmbeddedFramesIterator;\
  888.     iter->InitIterator(ev, (FW_CEmbeddingPart*)somSelf->GetFrameworkPart(ev), fwFrame);\
  889.     return iter; \
  890. } \
  891.  \
  892. /*---------------------------------------------------------------------------------------- \
  893.     RequestEmbeddedFrame \
  894. ----------------------------------------------------------------------------------------*/ \
  895.  \
  896. SOM_Scope ODFrame*  SOMLINK PartName##RequestEmbeddedFrame(ModuleName##_##PartName *somSelf, Environment *ev, \
  897.         ODFrame* containingFrame, \
  898.         ODFrame* baseFrame, \
  899.         ODShape* frameShape, \
  900.         ODPart* embeddedPart, \
  901.         ODTypeToken viewType, \
  902.         ODTypeToken presentation, \
  903.         ODBoolean isOverlaid) \
  904. { \
  905.     return FW_CODPart::RequestEmbeddedFrame(ev,  \
  906.                                             containingFrame, \
  907.                                             baseFrame, \
  908.                                             frameShape, \
  909.                                             embeddedPart, \
  910.                                             viewType, \
  911.                                             presentation, \
  912.                                             isOverlaid); \
  913. } \
  914.  \
  915. /*---------------------------------------------------------------------------------------- \
  916.     RemoveEmbeddedFrame \
  917. ----------------------------------------------------------------------------------------*/ \
  918.  \
  919. SOM_Scope void  SOMLINK PartName##RemoveEmbeddedFrame(ModuleName##_##PartName *somSelf, Environment *ev, \
  920.         ODFrame* embeddedFrame) \
  921. { \
  922.     FW_CODPart::RemoveEmbeddedFrame(ev, embeddedFrame); \
  923. } \
  924.  \
  925. /*---------------------------------------------------------------------------------------- \
  926.     RequestFrameShape \
  927. ----------------------------------------------------------------------------------------*/ \
  928.  \
  929. SOM_Scope ODShape*  SOMLINK PartName##RequestFrameShape(ModuleName##_##PartName *somSelf, Environment *ev, \
  930.         ODFrame* embeddedFrame, \
  931.         ODShape* frameShape) \
  932. { \
  933.     return FW_CODPart::RequestFrameShape(ev, embeddedFrame, frameShape); \
  934. }
  935.  
  936. #else
  937.  
  938. // ======== Non-EmbeddingPart =========
  939.  
  940. #define FW_CONTAINER_PART_API(ModuleName, PartName, PartClass) \
  941. /*---------------------------------------------------------------------------------------- \
  942.     AdjustBorderShape \
  943. ----------------------------------------------------------------------------------------*/ \
  944.  \
  945. SOM_Scope ODShape*  SOMLINK PartName##AdjustBorderShape(ModuleName##_##PartName *somSelf, Environment * ev, \
  946.         ODFacet* embeddedFacet, \
  947.         ODShape* shape) \
  948. { \
  949.     FW_DEBUG_MESSAGE("AdjustBorderShape: Error, this part editor does not support embedding"); \
  950.     if (shape != NULL) \
  951.         shape->Acquire(ev); \
  952.     return shape; \
  953. } \
  954.  \
  955. /*---------------------------------------------------------------------------------------- \
  956.     EmbeddedFrameUpdated \
  957. ----------------------------------------------------------------------------------------*/ \
  958.  \
  959. SOM_Scope void  SOMLINK PartName##EmbeddedFrameUpdated(ModuleName##_##PartName *somSelf, Environment *ev, \
  960.         ODFrame* frame, \
  961.         ODUpdateID updateID) \
  962. { \
  963.     FW_DEBUG_MESSAGE("EmbeddedFrameUpdated: Error, this part editor does not support embedding"); \
  964. } \
  965.  \
  966. /*---------------------------------------------------------------------------------------- \
  967.     UsedShapeChanged \
  968. ----------------------------------------------------------------------------------------*/ \
  969.  \
  970. SOM_Scope void  SOMLINK PartName##UsedShapeChanged(ModuleName##_##PartName *somSelf, Environment *ev, \
  971.         ODFrame* embeddedFrame) \
  972. { \
  973.     FW_DEBUG_MESSAGE("UsedShapeChanged: Error, this part editor does not support embedding"); \
  974. } \
  975.  \
  976. /*---------------------------------------------------------------------------------------- \
  977.     RevealFrame \
  978. ----------------------------------------------------------------------------------------*/ \
  979.  \
  980. SOM_Scope ODBoolean  SOMLINK PartName##RevealFrame(ModuleName##_##PartName *somSelf, Environment *ev, \
  981.         ODFrame* embeddedFrame, \
  982.         ODShape* revealShape) \
  983. { \
  984.     FW_DEBUG_MESSAGE("RevealFrame: Error, this part editor does not support embedding"); \
  985.     return FALSE; \
  986. } \
  987.  \
  988. /*---------------------------------------------------------------------------------------- \
  989.     EmbeddedFrameSpec \
  990. ----------------------------------------------------------------------------------------*/ \
  991.  \
  992. SOM_Scope void  SOMLINK PartName##EmbeddedFrameSpec(ModuleName##_##PartName *somSelf, Environment *ev, \
  993.         ODFrame* embeddedFrame, \
  994.         ODObjectSpec* spec) \
  995. { \
  996.     FW_DEBUG_MESSAGE("EmbeddedFrameSpec: Error, this part editor does not support embedding"); \
  997. } \
  998.  \
  999. /*---------------------------------------------------------------------------------------- \
  1000.     CreateEmbeddedFramesIterator \
  1001. ----------------------------------------------------------------------------------------*/ \
  1002.  \
  1003. SOM_Scope ODEmbeddedFramesIterator*  SOMLINK PartName##CreateEmbeddedFramesIterator(ModuleName##_##PartName *somSelf, Environment *ev, \
  1004.         ODFrame* frame) \
  1005. { \
  1006.     FW_SetODException(ev, kODErrCannotEmbed); \
  1007.     return NULL; \
  1008. } \
  1009.  \
  1010. /*---------------------------------------------------------------------------------------- \
  1011.     RequestEmbeddedFrame \
  1012. ----------------------------------------------------------------------------------------*/ \
  1013.  \
  1014. SOM_Scope ODFrame*  SOMLINK PartName##RequestEmbeddedFrame(ModuleName##_##PartName *somSelf, Environment *ev, \
  1015.         ODFrame* containingFrame, \
  1016.         ODFrame* baseFrame, \
  1017.         ODShape* frameShape, \
  1018.         ODPart* embeddedPart, \
  1019.         ODTypeToken viewType, \
  1020.         ODTypeToken presentation, \
  1021.         ODBoolean isOverlaid) \
  1022. { \
  1023.     FW_DEBUG_MESSAGE("RequestEmbeddedFrame: Error, this part editor does not support embedding"); \
  1024.     return NULL; \
  1025. } \
  1026.  \
  1027. /*---------------------------------------------------------------------------------------- \
  1028.     RemoveEmbeddedFrame \
  1029. ----------------------------------------------------------------------------------------*/ \
  1030.  \
  1031. SOM_Scope void  SOMLINK PartName##RemoveEmbeddedFrame(ModuleName##_##PartName *somSelf, Environment *ev, \
  1032.         ODFrame* embeddedFrame) \
  1033. { \
  1034.     FW_DEBUG_MESSAGE("RemoveEmbeddedFrame: Error, this part editor does not support embedding"); \
  1035. } \
  1036.  \
  1037. /*---------------------------------------------------------------------------------------- \
  1038.     RequestFrameShape \
  1039. ----------------------------------------------------------------------------------------*/ \
  1040.  \
  1041. SOM_Scope ODShape*  SOMLINK PartName##RequestFrameShape(ModuleName##_##PartName *somSelf, Environment *ev, \
  1042.         ODFrame* embeddedFrame, \
  1043.         ODShape* frameShape) \
  1044. { \
  1045.     FW_DEBUG_MESSAGE("RequestFrameShape: Error, this part editor does not support embedding"); \
  1046.     frameShape->Acquire(ev); \
  1047.     return frameShape; \
  1048. }
  1049.  
  1050. #endif